<?php

namespace Sharks\Core\Persistence;

use ezcDbFactory;
use ezcDbInstance;
use Sharks\Core\Support\Base\DefValue;


/**
 * Db类
 * 设置与获取相应数据库
 * $identifier 主要用于不同的数据库连接
 */
class Db {

    /**
     * 设置数据库对象
     * @param $dbUrl
     * @param string $identifier
     */
    public static function set($dbUrl, $identifier = 'default') {
        $identifier = DefValue::isEmpty($identifier, 'default');
        $db = ezcDbFactory::create($dbUrl);
        $db->query('SET NAMES utf8');
        ezcDbInstance::set($db, $identifier);
    }

    /**
     * 获取数据库对象, 拿到的是ezcDbHandler 该对象继承了PDO对象,即对PDO进行了扩展
     * @param string $identifier
     * @return \ezcDbHandler
     */
    public static function connector($identifier = 'default') {
        $identifier = DefValue::isEmpty($identifier, 'default');
        return ezcDbInstance::get($identifier);
    }
}